// dh-hospital-service 云对象
// 全局医院服务 - 提供唯一医院信息获取

const db = uniCloud.database()

module.exports = {
	/**
	 * 获取唯一医院ID
	 * 单一医院系统的核心方法
	 */
	async getHospitalId() {
		try {
			const res = await db.collection('dh-hospitals')
				.field({ _id: true })
				.limit(1)
				.get()
			
			const hospitals = res.data || []
			
			if (hospitals.length === 0) {
				return {
					code: 404,
					message: '系统中尚未创建医院，请先在医院管理中创建医院信息',
					data: null
				}
			}
			
			return {
				code: 200,
				message: '获取成功',
				data: hospitals[0]._id
			}
		} catch (err) {
			console.error('获取医院ID失败:', err)
			return {
				code: 500,
				message: err.message || '获取失败',
				data: null
			}
		}
	},
	
	/**
	 * 获取医院完整信息
	 */
	async getHospitalInfo() {
		try {
			const res = await db.collection('dh-hospitals')
				.limit(1)
				.get()
			
			const hospitals = res.data || []
			
			if (hospitals.length === 0) {
				return {
					code: 404,
					message: '系统中尚未创建医院',
					data: null
				}
			}
			
			return {
				code: 200,
				message: '获取成功',
				data: hospitals[0]
			}
		} catch (err) {
			console.error('获取医院信息失败:', err)
			return {
				code: 500,
				message: err.message || '获取失败',
				data: null
			}
		}
	},
	
	/**
	 * 检查医院是否已创建
	 */
	async checkHospitalExists() {
		try {
			const countRes = await db.collection('dh-hospitals').count()
			const count = countRes.total || 0
			
			return {
				code: 200,
				message: '检查成功',
				data: {
					exists: count > 0,
					count: count
				}
			}
		} catch (err) {
			console.error('检查医院失败:', err)
			return {
				code: 500,
				message: err.message || '检查失败',
				data: null
			}
		}
	},
	
	/**
	 * 内部方法：同步获取医院ID（供其他云对象调用）
	 */
	async _getHospitalIdSync() {
		try {
			const res = await db.collection('dh-hospitals')
				.field({ _id: true })
				.limit(1)
				.get()
			
			const hospitals = res.data || []
			return hospitals.length > 0 ? hospitals[0]._id : null
		} catch (err) {
			console.error('同步获取医院ID失败:', err)
			return null
		}
	}
}

